namespace SharpTalk.Core.Attributes
{
    using System;
    using Enums;

    /// <summary>
    /// 
    /// </summary>
    [Serializable]
    [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
    public sealed class EnumVisibilityAttribute : Attribute
    {
        private readonly bool _isVisible;

        /// <summary>
        /// Creates a new instance of the <see cref="T:SharpTalk.Core.Attributes.EnumVisibilityAttribute"/> class.
        /// </summary>
        public EnumVisibilityAttribute(bool isVisible)
        {
            _isVisible = isVisible;
        }
        /// <summary>
        /// Obtains or defines if the Enum value is visible
        /// </summary>
        public bool IsVisible { get { return _isVisible; } }
    }
}